package br.usjt.teste;

import static org.junit.Assert.*;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

import br.usjt.dominio.Filme;
import br.usjt.dominio.FilmeRepositorio;
import br.usjt.servico.DAOFactory;
import br.usjt.servico.IFilmeDAO;

public class UC05CadastrarFilme {
	static IFilmeDAO filmeDAO;
	static FilmeRepositorio filmeRepositorio;
	Filme umFilme;
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		filmeDAO = DAOFactory.getDAOFactory(DAOFactory.MYSQL).getFilmeDAO();
		filmeRepositorio = new FilmeRepositorio();
	}
	/**
	 * Objetivo- verificar o comportamento da funcao cadastrar filme na camada
	 * de persistencia
	 * Pre-condicao - o filme nao esta cadastrado
	 */
	@Test
	public void CT02FBCadastraFilme_com_sucesso() {
		assertEquals("qt de registro modificados no db=", 1, filmeDAO.cadastra(1111,"novo filme",1));
	}
	/**************************************************************************************
	 * teste do dominio
	 **************************************************************************************/
	/**
	 * Objetivo- valida a integracao da classe filme com o repositorio.
	 * Pre-condicao - o titulo do filme nao esta cadastrado
	 */
	@Test
	public void CT01_CadastraFilme_com_sucesso() {
		umFilme = new Filme(4444,"tubarao",2);
		assertEquals("quant de reg manipulados", "true",filmeRepositorio.cadastra(umFilme));
	}

	
	@AfterClass
	public static void tearDownAfterClass() throws Exception {
		filmeDAO.exclui("novo filme");
		filmeRepositorio.exclui("tubarao" );
	}
}
